/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AccesoBaseDatos;
import java.sql.*;
/**
 *
 * @author a70204
 */
public class GatewayProyectos {
    private ConexionBaseDatos establecerConexion = new ConexionBaseDatos();
    private Connection conn = null;
    private Statement stm = null; 
    
    public void AbrirConexion(){
        conn = establecerConexion.ConectarBD();
    }

    public boolean InsertarProyectos(String cedula,String codigoProyecto,String nombre,String tipo, String fechaInicio,String fechaConclusion,String rol,String descripcion ) throws SQLException{        
        boolean insertar = false;
        insertar = this.VerificarCedula(cedula);
        if(insertar == true){
            insertar = false;
            this.AbrirConexion();
            int rowsEffected = 0;
            if (conn != null) {
                try {//se realiza el insert
                    stm = conn.createStatement();
                    String strSQL = "INSERT INTO Proyectos VALUES ('"+codigoProyecto+"','"+nombre+"','"+tipo+"','"+fechaInicio+"','"+fechaConclusion+"','"+rol+"','"+descripcion+"')";
                    String strSQL1 = "INSERT INTO tieneProyectos VALUES ('"+cedula+"','"+codigoProyecto+"')";
                    rowsEffected = stm.executeUpdate(strSQL);
                    rowsEffected += stm.executeUpdate(strSQL1);
                    if(rowsEffected==2){
                        insertar = true;
                    }else{
                        insertar=false;
                    }
                    //retorno = mapping.findForward(SUCCESS);
                }catch(SQLException ex){
                    //retorno = mapping.findForward(FALLACONEXION);
                    insertar = false;
                }
                conn.close();//cierra la conexion       
            }
        }
        return insertar;
    }

    public boolean UpdateProyectos(String codigoProyecto, String nombre, String tipo, String fechaInicio, String fechaConclusion, String rol, String descripcion)throws SQLException{
        boolean actualizo = false;
            this.AbrirConexion();
            int rowsEffected = 0;
            if (conn != null) {
                try {//se realiza el insert
                    stm = conn.createStatement();
                    String strSQL = "update Proyectos set nombre='"+nombre+"', tipo='"+tipo+"', fechaInicio='"+fechaInicio+"', fechaConclusion='"+fechaConclusion+"', rol='"+rol+"', descripcion='"+descripcion+"' where codigoProyecto='"+codigoProyecto+"'";                   
                    rowsEffected = stm.executeUpdate(strSQL);
                    actualizo = true;
                }catch(SQLException ex){
                    //retorno = mapping.findForward(FALLACONEXION);
                    actualizo = false;
                }
                conn.close();//cierra la conexion       
            }
        return actualizo;
    }
 
    
    public boolean VerificarExistencia(String cedula, String codigo){
        boolean existe = false;
        try{
             conn = establecerConexion.ConectarBD();
             if(conn != null){//si tenemos conexion
                 Statement st = conn.createStatement();
                 ResultSet rs = st.executeQuery("select cedulaProfesor from tieneProyectos where cedulaProfesor='"+cedula+"' && codigoProyecto='"+codigo+"'");
                 while (rs.next()&&existe==false){
                     existe = true;
                 }
                 rs.close();
                 st.close();
                 conn.close();
             }
        }catch (Exception e){
            e.printStackTrace();
        }
        return existe;
    }
    
    public boolean VerificarCedula(String cedula){
     boolean existe = false;
     try{
         conn = establecerConexion.ConectarBD();
         if(conn != null){//si tenemos conexion
             Statement st = conn.createStatement();
             ResultSet rs = st.executeQuery("select nombre from Profesor where cedula ='"+cedula+"'");
             while (rs.next()&&existe==false){
                 existe = true;
             }  
             rs.close();
             st.close();
             conn.close();
         }
      }catch (Exception e){
         e.printStackTrace();
      }
     return existe;
    }
}
